package main

import "sync"

// 饿汉模式
type singleTon struct {
}

var singleTon1 *singleTon

func init() {
	singleTon1 = &singleTon{}
}
func (s *singleTon) getInstance() *singleTon {
	return singleTon1
}

//懒汉模式

var (
	lazySingleton *singleTon
	once          = &sync.Once{}
)

func (s *singleTon) getInstance2() *singleTon {
	if lazySingleton == nil {
		once.Do(func() {
			lazySingleton = &singleTon{}
		})
	}
	return lazySingleton
}

func main() {

}
